home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / Localization.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  2.6 KB  |  99 lines

  1. package
  2. {
  3.    import flash.utils.Dictionary;
  4.    import flash.xml.XMLNode;
  5.    import flash.xml.XMLNodeType;
  6.    
  7.    public class Localization
  8.    {
  9.       
  10.       internal static var _singleton:Localization;
  11.        
  12.       
  13.       internal var _strings:Dictionary;
  14.       
  15.       internal var _loader:XMLLoader;
  16.       
  17.       internal var _fn:Function;
  18.       
  19.       internal var _current_language:String;
  20.       
  21.       public function Localization()
  22.       {
  23.          _strings = new Dictionary();
  24.          super();
  25.       }
  26.       
  27.       public static function getInstance() : Localization
  28.       {
  29.          if(_singleton == null)
  30.          {
  31.             _singleton = new Localization();
  32.          }
  33.          return _singleton;
  34.       }
  35.       
  36.       public static function getString(param1:String) : String
  37.       {
  38.          return getInstance().getString(param1);
  39.       }
  40.       
  41.       protected function onDone(param1:String) : void
  42.       {
  43.          var _loc2_:String = null;
  44.          var _loc3_:XMLNode = null;
  45.          var _loc4_:XMLNode = null;
  46.          for each(_loc3_ in _loader.getDoc().firstChild.childNodes)
  47.          {
  48.             if(_loc3_.nodeType == XMLNodeType.ELEMENT_NODE)
  49.             {
  50.                _loc2_ = String(_loc3_.attributes["language"]);
  51.                for each(_loc4_ in _loc3_.childNodes)
  52.                {
  53.                   if(_loc4_.nodeType == XMLNodeType.ELEMENT_NODE)
  54.                   {
  55.                      addString(_loc2_,_loc4_.attributes["id"],_loc4_.attributes["text"]);
  56.                   }
  57.                }
  58.             }
  59.          }
  60.          _fn();
  61.       }
  62.       
  63.       protected function getKey(param1:String, param2:String) : String
  64.       {
  65.          return param1 + "-" + param2;
  66.       }
  67.       
  68.       public function startLoad(param1:Function, param2:String) : void
  69.       {
  70.          _fn = param1;
  71.          _loader = new XMLLoader(MainDocument.getFullPathForName(param2),onDone,null);
  72.       }
  73.       
  74.       protected function addString(param1:String, param2:String, param3:String) : void
  75.       {
  76.          _strings[getKey(param1,param2)] = param3;
  77.          trace("added " + param1 + " " + param2 + " " + param3);
  78.       }
  79.       
  80.       public function setLanguage(param1:String) : *
  81.       {
  82.          _current_language = param1;
  83.       }
  84.       
  85.       public function getString(param1:String) : String
  86.       {
  87.          var _loc2_:String = null;
  88.          var _loc3_:String = null;
  89.          _loc2_ = getKey(_current_language,param1);
  90.          _loc3_ = String(_strings[_loc2_]);
  91.          if(_loc3_ != null)
  92.          {
  93.             return _loc3_;
  94.          }
  95.          return param1;
  96.       }
  97.    }
  98. }
  99.